TextSnapshot.hitTestTextNearPos()

Доступность

Среда разработки: Flash MX 2004.

Плеер: SWF файлы, опубликованные для Flash Player 6 или более поздних версий, проигрываются во Flash Player 7 и более поздних.

Синтаксис

my_snap.hitTestTextNearPos(x:Number, y:Number [, maxDistance:Number] ) : Number

Параметры

x Число, отражающее координату x мувиклипа, в которой производится проверка на наличие текста объекта my_snap.

y Число, отражающее координату y мувиклипа, в которой производится проверка на наличие текста объекта my_snap.

maxDistance Необязательный параметр-число, отражающий максимальное расстояние от точки с координатами xy, на котором производится поиск текста. Расстояние рассчитывается от центра каждого символа. Значением по умолчанию является 0.

Возвращает

Число, отражающее индекс символа в объекте my_snap, который находится ближе всего к точкес указанными координатами xy. Возвращает -1 в случае, если таких символов не найдено или они не попадают в метрический диапазон (смотри пункт “Описание”).

Описание

Метод; позволяет определить, какой символ в объекте TextSnapshot находится в (или рядом с) точке с координатами xy мувиклипа, в котором содержится текст объекта my_snap.

Если вы опустите (или передадите значение 0) параметр maxDistance, точка с координатами xy должна лежать внутри границ (bounding box) my_snap.

Этот метод работает корректно только со шрифтами, имеющими метрические данные о символах ; по умолчанию, Flash не включает эту информацию для статических полей. В некоторых случаях из-за этого метод возвращает -1 вместо индекса. Чтобы убедиться, что возвращаться будет индекс, вы можете принудительно включить метрические данные о шрифте в среде разработки. Для этого добавьте на Сцену текстовое поле, использующее этот же шрифт, выберите опцию Character Options и укажите, что в ролик должен быть внедрен один символ. Не важно, какой именно символ(ы) вы выберите, даже если это будет символ, не используемый в статическом текстовом поле.

Пример

Код в нижеследующем примере показывает, как пользоваться данным методом. Перед использованием этого кода, разместите на Сцене статическое текстовое поле с текстом “TextSnapshot Example”. Во время тестирования кода проведите курсором по статическому текстовому полю.

Замечание: Если во время исполнения кода символы не выбираются , вы должны поместить динамическое текстовое поле и произвести ряд действий. Смотри вышепункт “Описание” этого раздела.

// в этом примере предполагается, что мувиклип содержит
// статическое текстовое поле с текстом "TextSnapshot Example"
var my_mc:MovieClip = this;
var my_ts:TextSnapshot = my_mc.getTextSnapshot();
my_mc.onMouseMove = function() {
  // определяем, над каким символом находится курсор (если такие есть)
  var hitIndex:Number = my_ts.hitTestTextNearPos(_xmouse, _ymouse, 0);
  // сбрасываем выделение
  my_ts.setSelected(0, my_ts.getCount(), false);
  if (hitIndex>=0) {
    // если курсор над текстом, выделяем соответствующий символ
    my_ts.setSelected(hitIndex, hitIndex+1, true);
  }
};

См. также

MovieClip.getTextSnapshot(), MovieClip._x, MovieClip._y